package com.returnsoft.security.service;

import java.util.List;

import javax.ejb.Remote;

import com.returnsoft.security.dto.DepartmentDto;
import com.returnsoft.security.dto.PermissionDto;
import com.returnsoft.security.dto.UserDto;
import com.returnsoft.security.exception.SecurityExcepcion;

@Remote
public interface UserInterface {
	
	
	
	public UserDto doLogin(String username, String password, List<String> permissionsCode)
			throws SecurityExcepcion;

	public List<UserDto> findUsers(List<Integer> departmentsId,
			List<Integer> subDepartmentsId,  String documentNumber, String username,
			String firstname, String lastname) throws SecurityExcepcion;
	
	public List<UserDto> findUsers(String documentNumber,
			String firstname, String lastname, String permissionCode) throws SecurityExcepcion;
	
	public List<UserDto> findUsers(List<Integer> departmentsId,
			List<Integer> subDepartmentsId, String documentNumber, String firstname,
			String lastname, String username, String permissionCode) throws SecurityExcepcion;

	public UserDto addUser(UserDto userDto) throws SecurityExcepcion;
	
	public UserDto findById(Integer userId) throws SecurityExcepcion;
	
	public UserDto findByPersonId(Integer personId) throws SecurityExcepcion;
	
	public UserDto findByDocumentNumber(String documentNumber) throws SecurityExcepcion;
	
	public List<DepartmentDto> findDepartments(Integer userId)
			throws SecurityExcepcion;
	
	public List<PermissionDto> findPermissions(Integer userId)
			throws SecurityExcepcion;
	
	
		
}
